﻿using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;

namespace Common.IO.FileIO
{
    public class IniFileIO
    {
        //文件INI名称 
        public string Path;

        ////声明读写INI文件的API函数 
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);


        //类的构造函数，传递INI文件名 
        public IniFileIO(string inipath)
        {
            Path = System.IO.Directory.GetCurrentDirectory() + "\\" + inipath;
        }


        /// <summary>
        /// ///////构造函数
        /// </summary>
        /// <param name="inipath">ini文件路径</param>
        /// <param name="isabsolutepath">是否为绝对路径</param>
        public IniFileIO(string inipath, bool isabsolutepath)
        {
            if (isabsolutepath)
                Path = inipath;
            else
                Path = System.IO.Directory.GetCurrentDirectory() + "\\" + inipath;
        }

        //写INI文件 
        public void IniWriteValue(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, this.Path);

        }

        //读取INI文件指定 
        public string IniReadValue(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section, Key, "无法找到对应值！", temp, 255, this.Path);
            return temp.ToString();

        }
    }
}
